package com.plug.common;

import java.io.Serializable;

/**
 * 缓存接口
 *
 * @author Archx[archx@foxmail.com]
 * @date 2016/3/10 0010
 */
public interface Cache {
    /**
     * 设置缓存
     *
     * @param key   key
     * @param entry 可序列化对象
     * @param <E>   实体泛型
     */
    <E extends Serializable> void set(String key, E entry);

    /**
     * 设置缓存
     *
     * @param key     key
     * @param entry   可序列化对象
     * @param expired 过期时间
     * @param <E>     实体泛型
     */
    <E extends Serializable> void set(String key, E entry, int expired);

    /**
     * 获取缓存
     *
     * @param key key
     * @param <E> 实体泛型
     * @return
     */
    <E> E get(String key);

    /**
     * 移除缓存
     *
     * @param key key
     */
    void remove(String key);
}
